package org.mappland.compltres.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

@Data
@TableName(value = "admin")
public class Admin {
    /**
     * 日期时间格式模式，用于指定日期和时间的字符串表示形式。
     * 格式："yyyy-MM-dd HH:mm" 表示四位数的年份、两位数的月份、两位数的日、
     * 两位数的小时（24小时制）和两位数的分钟，各部分之间用连字符和空格分隔。
     * 此模式被用于 {@link DateTimeFormat} 和 {@link JsonFormat} 注解，
     * 确保时间格式统一
     */
    private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm";

    @TableId(value = "id")
    private Integer id;

    @TableField(value = "create_time")
    @DateTimeFormat(pattern = DATE_TIME_PATTERN)
    @JsonFormat(pattern = DATE_TIME_PATTERN, shape = JsonFormat.Shape.STRING)
    private LocalDateTime createTime = LocalDateTime.now();

    @TableField(value = "email")
    private String email;

    @TableField(value = "admin_name")
    private String adminName;

    @TableField(value = "password")
    private String password;

    @TableField(value = "phone")
    private String phone;

    @Override
    public String toString() {
        return "Admin{" +
                "id=" + id +
                ", createTime=" + createTime +
                ", email='" + email + '\'' +
                ", admin_name='" + adminName + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                '}';
    }
}
